#-*- coding: UTF-8 -*-
from pyramid.httpexceptions import HTTPFound
from pyramid.security import remember
from pyramid.security import forget




from scp.modelo.models import DBSession
from scp.modelo.Usuario import Usuario
from scp.modelo.Permiso import Permiso
from scp.modelo.Rol import Rol

from pyramid.response import Response
from pyramid.view import view_config
import json

import re

#@view_config(renderer='json')
def permisos(request):
	"""Método controlador encargado de la administración de los Permisos.
		URL asociada: /permisos/{operacion}
		operacion:
			view, listado de permisos
			editarRol, lista los permisos asociados a un deteminado Rol.
		@param request: Petición Http del cliente. 	
	"""

	print ">>>>>>>>>>>>>Controlador de Permisos - Inicio>>>>>>>>>>>>>>"
	print "request:"
	print request

	print '>request.metodo'
	
	methodRequest = request.method
	print methodRequest
	
	print '>request.url'
	
	print request.url
	
	
	dicParametros = request.matchdict
	
	
	print "parametros abajo..."
	print request.params
	
	print 'request.body'
	print request.body 
	

	print "operaciónnnnnnnn"
	print dicParametros.get('operacion')
	print "operaciónnnnnnnn"
	
	session = DBSession()

	print 'dicParametros.get(operacion).find(?):' 
	print dicParametros.get('operacion').find('?')
	
	if dicParametros.get('operacion') == 'view':
		
		permisosAll = session.query(Permiso).all()
		permisosArray = []
		for permisoIter in permisosAll:
			aux = {'idPermiso': permisoIter.id, 'nombrePermiso': permisoIter.nombre}
			permisosArray.append(aux)	
	
		response = Response()
	
		response.body = json.dumps(dict(success = True, permisos = permisosArray))
		response.content_type = 'application/json'
		return response
	elif dicParametros.get('operacion') == 'editarRol':
		
		rolEditado = session.query(Rol).filter_by(id=request.params['idRol']).first()
		
		print ">>>id rol recibido de la vista!!"
		print request.params['idRol']
		
		print '>>>Rol a ser Editado!'
		print rolEditado.nombre
		
		
		permisosAllEdit = rolEditado.permisos
		permisosArrayEdit = []
		for permisoIter in permisosAllEdit:
			aux = permisoIter.id
			permisosArrayEdit.append(aux)	
	
		response = Response()
	
		response.body = json.dumps(dict(success = True, permisos = permisosArrayEdit))
		response.content_type = 'application/json'
		return response 
	
